home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / workbench / libs / intuisup.lha / Intuisup / Editor / unnamed.c < prev    next >
C/C++ Source or Header  |  1992-10-06  |  7KB  |  345 lines

  1.         /* Project: unnamed */
  2.  
  3.     /* Includes */
  4.  
  5. #include <exec/types.h>
  6. #include <exec/lists.h>
  7. #include <intuition/intuition.h>
  8. #include <libraries/intuisup.h>
  9. #ifdef AZTEC_C
  10. #include <functions.h>
  11. #endif
  12. #ifdef LATTICE
  13. #include <proto/all.h>
  14. #endif
  15.  
  16.     /* Defines and data for window */
  17.  
  18. #define RENDER_INFO_FLAGS  3
  19. #define OPEN_WINDOW_FLAGS  0
  20.  
  21. #define WINDOW_LEFT_EDGE   98
  22. #define WINDOW_TOP_EDGE    123
  23. #define WINDOW_WIDTH       510
  24. #define WINDOW_HEIGHT      132
  25.  
  26. STATIC struct NewWindow  test_new_window = {
  27.     WINDOW_LEFT_EDGE, WINDOW_TOP_EDGE, WINDOW_WIDTH, WINDOW_HEIGHT,
  28.     0, 1,
  29.     CLOSEWINDOW | MENUPICK | GADGET_IDCMP_FLAGS_ALL,
  30.     WINDOWDRAG | WINDOWDEPTH | WINDOWSIZING | RMBTRAP,
  31.     NULL, NULL,
  32.     (UBYTE *)"",
  33.     NULL, NULL,
  34.     100, 20, -1, -1,
  35.     WBENCHSCREEN
  36. };
  37.     /* Defines and data for borders */
  38.  
  39. #define TEST_BORDER_BORDER1   0
  40. #define TEST_BORDER_BORDER2   1
  41. #define TEST_BORDER_BORDER3   2
  42. #define TEST_BORDER_BORDER4   3
  43.  
  44. STATIC struct BorderData  test_border_data[] = {
  45.    {
  46.       4, 273, 33, 87, 25
  47.    }, {
  48.       2, 275, 106, 95, 21
  49.    }, {
  50.       1, 397, 112, 97, 15
  51.    }, {
  52.       3, 374, 6, 63, 14
  53.    }, {
  54.       INTUISUP_DATA_END
  55.    }
  56. };
  57.     /* Data for fonts */
  58.  
  59. STATIC struct TextAttr  test_text_attr[] = {
  60.    {
  61.       (STRPTR)"topaz.font", 8, FS_NORMAL, FPF_ROMFONT
  62.    }, {
  63.       (STRPTR)"topaz.font", 9, FS_NORMAL, FPF_ROMFONT
  64.    }
  65. };
  66.     /* Defines and data for texts */
  67.  
  68. #define TEST_TEXT_TEXT1   0
  69. #define TEST_TEXT_TEXT2   1
  70. #define TEST_TEXT_TEXT3   2
  71.  
  72. STATIC struct TextData  test_text_data[] = {
  73.    {
  74.       1, 6, 291, 40,
  75.       "Laber", &test_text_attr[1]
  76.    }, {
  77.       1, 65, 302, 92,
  78.       "Humbug", &test_text_attr[1]
  79.    }, {
  80.       1, 128, 40, 112,
  81.       "Blubber", &test_text_attr[0]
  82.    }, {
  83.       INTUISUP_DATA_END
  84.    }
  85. };
  86.     /* Defines and data for gadgets */
  87.  
  88. #define TEST_GADGET_GADGET1   0
  89. #define TEST_GADGET_GADGET2   1
  90. #define TEST_GADGET_GADGET3   2
  91. #define TEST_GADGET_GADGET4   3
  92. #define TEST_GADGET_GADGET5   4
  93. #define TEST_GADGET_GADGET6   5
  94. #define TEST_GADGET_GADGET7   6
  95. #define TEST_GADGET_GADGET8   7
  96. #define TEST_GADGET_GADGET9   8
  97. #define TEST_GADGET_GADGET10   9
  98. #define TEST_GADGET_GADGET11   10
  99.  
  100. IMPORT struct List  test_gadget1_list;
  101. STATIC struct Node  test_gadget1_node[] = {
  102.    {
  103.       &test_gadget1_node[1], (struct Node *)&test_gadget1_list.lh_Head, 0, 0,
  104.       "Entry 1"
  105.    }, {
  106.       &test_gadget1_node[2], &test_gadget1_node[0], 0, 0,
  107.       "Entry 2"
  108.    }, {
  109.       &test_gadget1_node[3], &test_gadget1_node[1], 0, 0,
  110.       "Entry 3"
  111.    }, {
  112.       &test_gadget1_node[4], &test_gadget1_node[2], 0, 0,
  113.       "Entry 4"
  114.    }, {
  115.       &test_gadget1_node[5], &test_gadget1_node[3], 0, 0,
  116.       "Entry 5"
  117.    }, {
  118.       &test_gadget1_node[6], &test_gadget1_node[4], 0, 0,
  119.       "Entry 6"
  120.    }, {
  121.       &test_gadget1_node[7], &test_gadget1_node[5], 0, 0,
  122.       "Entry 7"
  123.    }, {
  124.       &test_gadget1_node[8], &test_gadget1_node[6], 0, 0,
  125.       "Entry 8"
  126.    }, {
  127.       &test_gadget1_node[9], &test_gadget1_node[7], 0, 0,
  128.       "Entry 9"
  129.    }, {
  130.       &test_gadget1_node[10], &test_gadget1_node[8], 0, 0,
  131.       "Entry 10"
  132.    }, {
  133.       &test_gadget1_node[11], &test_gadget1_node[9], 0, 0,
  134.       "Entry 11"
  135.    }, {
  136.       (struct Node *)&test_gadget1_list.lh_Tail, &test_gadget1_node[10], 0, 0,
  137.       "Entry 12"
  138.    }
  139. };
  140. /* STATIC */ struct List  test_gadget1_list = {
  141.    &test_gadget1_node[0], NULL,
  142.    &test_gadget1_node[11], 0, 0
  143. };
  144. STATIC BYTE *test_gadget5_text_array[] = {
  145.    "MX1",
  146.    "MX2",
  147.    "MX3",
  148.    "MX4",
  149.    NULL
  150. };
  151. STATIC BYTE *test_gadget10_text_array[] = {
  152.    "Cycle",
  153.    "Test 1",
  154.    "Test 2",
  155.    "Test 3",
  156.    "Test 4",
  157.    "Test 5",
  158.    NULL
  159. };
  160. STATIC struct GadgetData  test_gadget_data[] = {
  161.    {
  162.       10, 1296, 13, 20, 107, 44,
  163.       "List_view", &test_text_attr[0],
  164.       { 0, 0, &test_gadget1_list }
  165.    }, {
  166.       11, 272, 144, 19, 100, 35,
  167.       "_Palette", &test_text_attr[1],
  168.       { 2, 0, (VOID *)2 }
  169.    }, {
  170.       1, 16, 266, 6, 91, 20,
  171.       "_Button", &test_text_attr[1],
  172.       { 0, 0, (VOID *)0 }
  173.    }, {
  174.       2, 1104, 424, 26, 21, 11,
  175.       "_Check", &test_text_attr[0],
  176.       { 1, 0, (VOID *)0 }
  177.    }, {
  178.       3, 144, 388, 57, 72, 47,
  179.       "_Radio", &test_text_attr[1],
  180.       { 1, 0, &test_gadget5_text_array[0] }
  181.    }, {
  182.       4, 1104, 205, 83, 76, 14,
  183.       "_String", &test_text_attr[0],
  184.       { 10, 0, "String" }
  185.    }, {
  186.       5, 144, 136, 62, 44, 14,
  187.       "_Integer", &test_text_attr[0],
  188.       { 10, 0, (VOID *)123 }
  189.    }, {
  190.       6, 528, 299, 64, 64, 11,
  191.       "Sli_der", &test_text_attr[0],
  192.       { 0, 10, (VOID *)5 }
  193.    }, {
  194.       7, 280, 473, 26, 18, 62,
  195.       "Scro_ller", &test_text_attr[0],
  196.       { 2, 10, (VOID *)5 }
  197.    }, {
  198.       8, 272, 20, 89, 97, 13,
  199.       "C_ycle", &test_text_attr[1],
  200.       { 0, 0, &test_gadget10_text_array[0] }
  201.    }, {
  202.       9, 144, 143, 109, 65, 12,
  203.       "C_ount", &test_text_attr[0],
  204.       { 10, 50, (VOID *)30 }
  205.    }, {
  206.       INTUISUP_DATA_END
  207.    }
  208. };
  209.  
  210.     /* Global var. */
  211. struct Library  *IntuiSupBase;
  212. APTR ri;
  213. struct Window* win;
  214. APTR gl;
  215.  
  216.     /* Protos */
  217. BOOL test_init(VOID);
  218. VOID test_close(VOID);
  219. VOID test_action(VOID);
  220.  
  221.     /* Test program */
  222.  
  223.     LONG
  224. main(VOID)
  225. {
  226.  
  227.     if(! test_init())
  228.     {
  229.         test_close();
  230.         return(1L);
  231.     }
  232.  
  233.     IDisplayBorders(ri, win, &test_border_data[0], 0, 0);
  234.     IDisplayTexts(ri, win,&test_text_data[0], 0, 0, NULL);
  235.     IDisplayGadgets(win,gl);
  236.  
  237.     test_action();
  238.  
  239.     test_close();
  240.  
  241.     return(0L);
  242. }
  243.  
  244. BOOL test_init(VOID)
  245. {
  246.     if (!(IntuiSupBase = (struct Library*)OpenLibrary(IntuiSupName,IntuiSupVersion)) )
  247.         return FALSE;
  248.  
  249.     if (!(ri = IGetRenderInfo(NULL, RENDER_INFO_FLAGS)) )
  250.         return FALSE;
  251.  
  252.       if (!(win = IOpenWindow(ri, &test_new_window,OPEN_WINDOW_FLAGS)) )
  253.         return FALSE;
  254.  
  255.     if (!(gl = ICreateGadgets(ri,&test_gadget_data[0], 0, 0, NULL)) )
  256.         return FALSE;
  257.  
  258.     return TRUE;
  259. }
  260.  
  261.     VOID
  262. test_close(VOID)
  263. {
  264.     if(gl) IRemoveGadgets(gl);
  265.     if(gl) IFreeGadgets(gl);
  266.     if(win) ICloseWindow(win, FALSE);
  267.     if(ri) IFreeRenderInfo(ri);
  268.     if(IntuiSupBase) CloseLibrary(IntuiSupBase);
  269. }
  270.  
  271.     VOID
  272. test_action(VOID)
  273. {
  274.     BOOL keepon = TRUE;
  275.  
  276.     do {
  277.         struct IntuiMessage  *msg;
  278.  
  279.         WaitPort(win->UserPort);
  280.         while (msg = IGetMsg(win->UserPort)) {
  281.             ULONG        Class=msg->Class;
  282.             USHORT    Code=msg->Code;
  283.             APTR        IAddress=msg->IAddress;
  284.  
  285.             IReplyMsg(msg);
  286.  
  287.             switch(Class)
  288.             {
  289.                 case CLOSEWINDOW:
  290.                     keepon = FALSE;
  291.                     break;
  292.  
  293.                 case ISUP_ID:
  294.                     switch(Code)
  295.                     {
  296.                         case    TEST_GADGET_GADGET1:
  297.                             printf("TEST_GADGET_GADGET1: %ld\n",IAddress);
  298.                             break;
  299.  
  300.                         case    TEST_GADGET_GADGET2:
  301.                             printf("TEST_GADGET_GADGET2: %ld\n",IAddress);
  302.                             break;
  303.  
  304.                         case    TEST_GADGET_GADGET3:
  305.                             printf("TEST_GADGET_GADGET3: %ld\n",IAddress);
  306.                             break;
  307.  
  308.                         case    TEST_GADGET_GADGET4:
  309.                             printf("TEST_GADGET_GADGET4: %ld\n",IAddress);
  310.                             break;
  311.  
  312.                         case    TEST_GADGET_GADGET5:
  313.                             printf("TEST_GADGET_GADGET5: %ld\n",IAddress);
  314.                             break;
  315.  
  316.                         case    TEST_GADGET_GADGET6:
  317.                             printf("TEST_GADGET_GADGET6: %s\n",IAddress);
  318.                             break;
  319.  
  320.                         case    TEST_GADGET_GADGET7:
  321.                             printf("TEST_GADGET_GADGET7: %ld\n",IAddress);
  322.                             break;
  323.  
  324.                         case    TEST_GADGET_GADGET8:
  325.                             printf("TEST_GADGET_GADGET8: %ld\n",IAddress);
  326.                             break;
  327.  
  328.                         case    TEST_GADGET_GADGET9:
  329.                             printf("TEST_GADGET_GADGET9: %ld\n",IAddress);
  330.                             break;
  331.  
  332.                         case    TEST_GADGET_GADGET10:
  333.                             printf("TEST_GADGET_GADGET10: %ld\n",IAddress);
  334.                             break;
  335.  
  336.                         case    TEST_GADGET_GADGET11:
  337.                             printf("TEST_GADGET_GADGET11: %ld\n",IAddress);
  338.                             break;
  339.  
  340.                     }
  341.             }
  342.         }
  343.     } while (keepon == TRUE);
  344. }
  345.